package com.sikaryofficial.backend.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 功能：多租户过滤注解
 *
 * @author 33 code
 * @date 2023-11-29 20:01
 */

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface TenantFilter {

    /**
     * 默认的值为 true 表示需要进行多租户的过滤
     *
     * @return `true`  or  `false`
     */
    boolean value() default true;

    /**
     * 整个逻辑通过注解的方式与ThreadLocal 存值取值判断
     * 整个方法的生命周期均有效，但是在多表连接查询的过程中，无法指定对应的表拼接租户字段
     * 后续需要完善
     */

    String alias() default "";
}
